﻿using System;
using System.Drawing;
using System.Windows.Forms;

namespace sy1_7
{
    public partial class Form1 : Form
    {
        private float zoomFactor = 1.0f; // 缩放比例（初始100%）
        private readonly float minZoom = 0.2f; // 最小缩放比例（20%）
        private readonly float maxZoom = 3.0f; // 最大缩放比例（300%）
        private readonly float step = 0.2f; // 每次缩放步长（20%）
        private Image originalImage; // 保存原始图片

        public Form1()
        {
            InitializeComponent();
        }

        // 窗体载入时加载图片
        private void Form1_Load(object sender, EventArgs e)
        {
            // 加载图片（替换为实际图片路径）
            string imagePath = @"E:\C#\1-7\17735ad4d869e4eaddb64a86a1ead737.jpg"; // 绝对路径
            if (System.IO.File.Exists(imagePath))
            {
                originalImage = Image.FromFile(imagePath);
                pictureBox1.Image = originalImage;
                UpdateZoomLabel(); // 显示初始比例
            }
            else
            {
                MessageBox.Show("图片文件不存在！");
            }
        }

        // 放大按钮
        private void btnZoomIn_Click(object sender, EventArgs e)
        {
            if (zoomFactor < maxZoom)
            {
                zoomFactor += step;
                ApplyZoom();
            }
        }

        // 缩小按钮
        private void btnZoomOut_Click(object sender, EventArgs e)
        {
            if (zoomFactor > minZoom)
            {
                zoomFactor -= step;
                ApplyZoom();
            }
        }

        // 重置按钮
        private void btnReset_Click(object sender, EventArgs e)
        {
            zoomFactor = 1.0f;
            ApplyZoom();
        }

        // 退出按钮
        private void btnExit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        // 应用缩放
        private void ApplyZoom()
        {
            if (originalImage == null) return;

            // 计算缩放后的尺寸
            int newWidth = (int)(originalImage.Width * zoomFactor);
            int newHeight = (int)(originalImage.Height * zoomFactor);

            // 设置图片框尺寸
            pictureBox1.Size = new Size(newWidth, newHeight);
            UpdateZoomLabel();
        }

        // 更新缩放比例标签
        private void UpdateZoomLabel()
        {
            lblZoom.Text = $"缩放比例：{zoomFactor:P0}"; // 显示为百分比（如100%）
        }
    }
}
